package base_grammar

import "fmt"

func Array_f4() {
	var a = [3]int{1, 2, 3}
	// 数组越界错误  panic: runtime error: index out of range [3] with length 3
	for i := 0; i < len(a); i++ {
		fmt.Printf("a[%v]: %v\n", i, a[i])
	}

	for idx, v := range a {
		fmt.Printf("a[%v]: %v\n", idx, v)
	}

}

func Array_f3() {

	var a [2]int
	a[0] = 100
	a[1] = 200
	fmt.Printf("a[0]: %v\n", a[0])
	fmt.Printf("a[1]: %v\n", a[1])
	a[0] = 1
	a[1] = 2
	fmt.Printf("a[0]: %v\n", a[0])
	fmt.Printf("a[1]: %v\n", a[1])

}

func Array_f2() {
	// 指定索引值value初始化
	var a1 = [...]int{0: 1, 2: 3, 5: 100}
	fmt.Printf("a1: %v\n", a1)

	// 数组元素修改
	a1[5] = 99
	fmt.Printf("a1: %v\n", a1)

}

func Array_f1() {
	var a1 [2]int
	var a2 [3]string
	var a3 [2]bool

	fmt.Printf("a1: %T : %v\n", a1, a1)
	fmt.Printf("a2: %T : %v\n", a2, a2)
	fmt.Printf("a3: %T : %v\n", a3, a3)

	var a4 = [2]int{1}
	fmt.Printf("a4: %v\n", a4)

	var a5 = [...]string{"hello", "go"}
	fmt.Printf("a5: %T : %v\n", a5, a5)

}
